package com.ruoyi.scm.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 供应链SCM-采购管理-采购计划对象 scm_purchase_plan
 *
 * @author Ryan
 * @date 2025-03-12
 */
@ApiModel("采购管理-采购计划对象")
public class ScmPurchasePlan extends BaseEntity {

    /** id */
    @Excel(name = "编号")
    @ApiModelProperty("编号")
    private Long id;

    /** 单据号 */
    @Excel(name = "单据号")
    @ApiModelProperty("单据号")
    private String documentNumber;

    /** 申请人Id */
    @ApiModelProperty("申请人Id")
    private Long applicantId;

    /** 申请人 */
    @Excel(name = "申请人")
    @ApiModelProperty("申请人")
    private String applicantName;

    /** 申请时间 */
    @Excel(name = "申请时间")
    @ApiModelProperty("申请时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date applicantDate;

    /** 申请状态 */
    @Excel(name = "申请状态")
    @ApiModelProperty("申请状态")
    private Integer applicantStatus;

    /** 审核人Id */
    @ApiModelProperty("审核人Id")
    private Long approvedId;

    /** 审核人 */
    @Excel(name = "审核人")
    @ApiModelProperty("审核人")
    private String approvedName;

    /** 审核时间 */
    @Excel(name = "审核时间")
    @ApiModelProperty("审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date approvedDate;

    /** 审核状态 */
    @Excel(name = "审核状态")
    @ApiModelProperty("审核状态")
    private Integer approvedStatus;

    /** 审核意见 */
    @ApiModelProperty("审核意见")
    private String approvedComments;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remark;

    /** 采购计划明细信息 */
    @ApiModelProperty("采购计划明细信息")
    private List<ScmPurchasePlanItem> scmPurchasePlanItemList = new ArrayList<>();

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDocumentNumber() {
        return documentNumber;
    }

    public void setDocumentNumber(String documentNumber) {
        this.documentNumber = documentNumber;
    }

    public Long getApplicantId() {
        return applicantId;
    }

    public void setApplicantId(Long applicantId) {
        this.applicantId = applicantId;
    }

    public String getApplicantName() {
        return applicantName;
    }

    public void setApplicantName(String applicantName) {
        this.applicantName = applicantName;
    }

    public Date getApplicantDate() {
        return applicantDate;
    }

    public void setApplicantDate(Date applicantDate) {
        this.applicantDate = applicantDate;
    }

    public Integer getApplicantStatus() {
        return applicantStatus;
    }

    public void setApplicantStatus(Integer applicantStatus) {
        this.applicantStatus = applicantStatus;
    }

    public Long getApprovedId() {
        return approvedId;
    }

    public void setApprovedId(Long approvedId) {
        this.approvedId = approvedId;
    }

    public String getApprovedName() {
        return approvedName;
    }

    public void setApprovedName(String approvedName) {
        this.approvedName = approvedName;
    }

    public Date getApprovedDate() {
        return approvedDate;
    }

    public void setApprovedDate(Date approvedDate) {
        this.approvedDate = approvedDate;
    }

    public Integer getApprovedStatus() {
        return approvedStatus;
    }

    public void setApprovedStatus(Integer approvedStatus) {
        this.approvedStatus = approvedStatus;
    }

    public String getApprovedComments() {
        return approvedComments;
    }

    public void setApprovedComments(String approvedComments) {
        this.approvedComments = approvedComments;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<ScmPurchasePlanItem> getScmPurchasePlanItemList() {
        return scmPurchasePlanItemList;
    }

    public void setScmPurchasePlanItemList(List<ScmPurchasePlanItem> scmPurchasePlanItemList) {
        this.scmPurchasePlanItemList = scmPurchasePlanItemList;
    }

    @Override
    public String toString() {
        return "ScmPurchasePlan{" +
                "id=" + id +
                ", documentNumber='" + documentNumber + '\'' +
                ", applicantId=" + applicantId +
                ", applicantName='" + applicantName + '\'' +
                ", applicantDate=" + applicantDate +
                ", applicantStatus=" + applicantStatus +
                ", approvedId=" + approvedId +
                ", approvedName='" + approvedName + '\'' +
                ", approvedDate=" + approvedDate +
                ", approvedStatus=" + approvedStatus +
                ", approvedComments='" + approvedComments + '\'' +
                ", remark='" + remark + '\'' +
                '}';
    }
}
